【2023.5.3~2023.5.9】CTF刷题记录 您所在的位置:网站首页 vscode import自己写的py 【2023.5.3~2023.5.9】CTF刷题记录

【2023.5.3~2023.5.9】CTF刷题记录

2023-06-22 01:44| 来源: 网络整理| 查看: 265

目录

日期:2023.5.3

题目:[GWCTF 2019]pyre

日期:2023.5.4

题目:[ACTF新生赛2020]easyre

题目:DASCTF Apr.2023 X SU战队2023开局之战 【简单】easyRE

日期:2023.5.5

题目:findit

题目:DASCTF Apr.2023 X SU战队2023开局之战 【中等】gotots

2023.5.6添加注释

日期:2023.5.6

题目:[ACTF新生赛2020]rome

题目:[FlareOn4]login

题目:简单注册器

日期:2023.5.7

题目:[WUSTCTF2020]level1

题目:[WUSTCTF2020]level2

题目:[WUSTCTF2020]level3

题目:[WUSTCTF2020]level4

日期:2023.5.8

题目:CrackRTF

题目:[GUET-CTF2019]re

日期:2023.5.9

题目:[MRCTF2020]Transform

题目:[2019红帽杯]easyRE

日期:2023.5.3 题目:[GWCTF 2019]pyre

刷题平台:BUUCTF

方向:REVERSE

Write UP:

获取题目附件,根据题目名可知是由python编写,所以直接用uncompyle6进行反编译,dump出py文件。

# uncompyle6 version 3.9.0 # Python bytecode version base 2.7 (62211) # Decompiled from: Python 3.9.12 (tags/v3.9.12:b28265d, Mar 23 2022, 23:52:46) [MSC v.1929 64 bit (AMD64)] # Embedded file name: encode.py # Compiled at: 2019-08-19 21:01:57 print 'Welcome to Re World!' print 'Your input1 is your flag~' l = len(input1) for i in range(l): num = ((input1[i] + i) % 128 + 128) % 128 code += num for i in range(l - 1): code[i] = code[i] ^ code[i + 1] print code code = ['\x1f', '\x12', '\x1d', '(', '0', '4', '\x01', '\x06', '\x14', '4', ',', '\x1b', 'U', '?', 'o', '6', '*', ':', '\x01', 'D', ';', '%', '\x13'] # okay decompiling attachment.pyc

可以看出程序对输入内容进行了两个加密,这两个加密可逆并知道了密文,开始写解密脚本。

code = ['\x1f', '\x12', '\x1d', '(', '0', '4', '\x01', '\x06', '\x14', '4', ',', '\x1b', 'U', '?', 'o', '6', '*', ':', '\x01', 'D', ';', '%', '\x13'] flag = "" for i in range(len(code)-2,-1,-1): code[i] = chr(ord(code[i]) ^ ord(code[i+1])) for i in range(len(code)): flag += chr(((ord(code[i]) - i) % 128 + 128) % 128) print(flag) # GWHT{Just_Re_1s_Ha66y!}

FLAG:flag{Just_Re_1s_Ha66y!}

日期:2023.5.4 题目:[ACTF新生赛2020]easyre

刷题平台:BUUCTF

方向:REVERSE

Write UP:

获取题目附件后,通过查壳工具发现程序有加UPX壳 

对其进行脱壳后将程序放入IDA中进行分析,找到关键的main函数,得知可以发现一个关键数组_data_start__。

 由此可以推测,是将输入的字符的对应数值-1作为_data_start__数组的下标与v4进行比较,因此只需要找到v4中的值在_data_start__中的对应下标位置即可。脚本如下:

cipher = "*F'\"N,\"(I?+@" flag = "ACTF{" dist = "~}|{zyxwvutsrqponmlkjihgfedcba`_^]\\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有